The present invention relates to a vector coding method that is used to encode speech, images and various other pieces of information and is particularly suited to encoding of information that is transmitted over an error-prone channel such as a mobile radio channel and encodes an input vector through the use of a plurality of codebooks each composed of plural representative vectors. The invention also pertains to a vector encoder using the above-mentioned vector coding method and a vector decoder for decoding codes encoded by the vector encoder.
Methods that have been proposed to transmit vectors over channels prone to channel errors set representative vectors in anticipation of possible channel errors and take into account the channel errors when labeling representative vectors. These methods are disclosed in Kumazawa, Kasahara and Namekawa, xe2x80x9cA Communication of Vector Quantizers for Noisy Channels,xe2x80x9d Transactions of the Institute of Electronics, Information and Communication Engineers of Japan, Vol. J67-B, No. 1, pp. 1-8, 1984, Zeger and Gersho, xe2x80x9cPseudo-Gray Coding,xe2x80x9d IEEE Trans. on Comm., Vol. 38, No. 12, pp. 2147-2158, 1990, and other literature. These methods hold all representative vectors directly in one codebook, and hence require large storage capacity for storing the codebook.
As a method that does not need large storage capacity in transmitting vectors over channels prone to channel errors, it has been proposed to transmit vectors after quantizing them through the use of two structured codebooks. This is disclosed in Moriya, xe2x80x9cTwo-Channel Vector Quantizer Applied to Speech coding,xe2x80x9d Transactions of the Institute of Electronics, Information and Communication Engineers of Japan, IT87-106, pp. 25-30, 1987 and other literature. This method has two small-scale codebooks and uses two representative vectors in combination to reduce the storage capacity needed and transmits two labels indicative of the two representative vectors to lessen the influence of channel errors. This method will be described with reference to FIGS. 1A and 1B. The representative vectors of the codebooks are generated beforehand by learning, for instance. In an encoder depicted in FIG. 1A, one representative vector Z1i is fetched from a codebook CB1 and one representative vector z2j from a codebook CB2, then they are added together in a vector combining part 3 to generate a vector sum Yij=z1i+z2j, and the distance, d(X,yij), between the combined representative vector yij and input vector X via an input terminal 4 is calculated, as distortion, in a distance calculating part 5. A control part 6 controls representative vector select switches 7 and 8 for the codebooks CB1 and CB2 and searches them for the representative vectors z1i and z2j that minimize the output d(X,yij) from the distance calculating part 5. The control part 6 provides, as encoded outputs to an output terminal 9, labels i and j of the representative vectors z1i and z2j that provides minimum distance.
In a decoder shown in FIG. 1B, the control part 6 controls representative vector select switches 13 and 14 in accordance with the labels i and j in the input code via an input terminal 11 and reads out representative vectors z1i and z2j from codebooks CB3 and CB4, respectively. The thus read-out representative vectors z1i and z2j are combined in a vector combining part 17 into a reconstructed vector yij=z1i+z2j, which is provided to an output terminal 18. Incidentally, the codebooks CB3 and CB4 are identical to CB1 and CB2, respectively.
The method described above in respect of FIGS. 1A and 1B reduces the storage capacity of the codebooks needed for storing the representative vectors and lessens the influence of channel errors by combining the vectors in the decoder through utilization of the two labels corresponding thereto.
With this method, however, if an error arises in the labels during transmission over the channel, then distortion will occur in all elements of the received vector. According to the circumstances, the error will cause an abnormally large amount of distortion in the decoded output.
Another problem of this method is that the amount of processing required is very large because it involves the calculation of the distance d(X,yij) for every combination of representative vectors of the two codebooks in search for the pair of representative vectors that minimizes the distance.
An object of the present invention is to provide a vector coding method that prevents an error in the input code to the decoder from causing serious distortion of its output.
Another object of the present invention is to provide a vector coding method that prevents an error in the input code to the decoder from causing serious distortion of its output and permits reduction of the amount of processing required.
Another object of the present invention is to provide a vector encoder that embodies the above-mentioned vector coding method.
Still another object of the present invention is to provide a vector decoder that decodes a vector encoded by the vector coding method that serves the above-mentioned objects.
According to the vector coding method and the encoder of the first aspect of the present invention, representative vectors from respective codebooks are combined and the distance between the combined representative vector and the input vector is calculated; in this instance, the representative vectors to be combined are those multiplied by predetermined different weighting coefficient vectors, each of which is composed of the same number of components. At least one of the components in each weighting coefficient vector assumes a maximum value, and the positions of the maximum components in the respective weighting coefficient vectors differ with the codebooks. The multiplication of each representative vector by the weighting coefficient vector is done on the representative vector read out of each codebook, or weighted representative vectors respectively premultiplied by the weighting coefficient vectors are prestored in each codebook.
According to the vector coding method and the vector encoder of a second aspect of the present invention, in the first aspect, the distribution of the set of weighted representative vectors multiplied by the weighting coefficient vectors for each codebook are approximated with straight lines, then the input vector is projected on each straight line and a plurality of weighted representative vectors present around the projection are chosen for each codebook. The thus chosen weighted representative vectors of the respective codebooks are combined in pairs and that one of the combined vectors which has the minimum distance to the input vector is selected as the combined representative vector.
In a third aspect, the present invention relates to a decoder for codes encoded into vectors according to the first or second aspect. The representative vectors read out of respective codebooks are multiplied by weighting coefficient vectors and the multiplied weighted representative vectors are combined into a reconstructed vector; the weighting coefficient vectors are selected in the same fashion as in the first aspect of the invention.